def str2i(line):
nums = [int(x) for x in line.split()]
v = 0
for i in nums:
v <<= 1
v |= i
return v
def inverse(n, k):
v = 0
pow2 = [1<<i for i in range(k)]
for i in pow2:
if (n & i) == 0:
v |= i
return v
n, k = [int(x) for x in input().split()]
cc = [0 for i in range(16)]
for i in range(n):
cc[str2i(input())] += 1
possible = False
for i in range(16):
if cc[i] == 0:
continue
for j in range(16):
if cc[j] == 0:
continue
if (i & j) == 0:
possible = True
break
if possible:
break
if possible:
print('YES')
else:
print('NO')
732B - Cormen --- The Best Friend Of a Man | 1369A - FashionabLee |
1474B - Different Divisors | 1632B - Roof Construction |
388A - Fox and Box Accumulation | 451A - Game With Sticks |
768A - Oath of the Night's Watch | 156C - Cipher |
545D - Queue | 459B - Pashmak and Flowers |
1538A - Stone Game | 1454C - Sequence Transformation |
165B - Burning Midnight Oil | 17A - Noldbach problem |
1350A - Orac and Factors | 1373A - Donut Shops |
26A - Almost Prime | 1656E - Equal Tree Sums |
1656B - Subtract Operation | 1656A - Good Pairs |
1367A - Short Substrings | 87A - Trains |
664A - Complicated GCD | 1635D - Infinite Set |
1462A - Favorite Sequence | 1445B - Elimination |
1656C - Make Equal With Mod | 567A - Lineland Mail |
1553A - Digits Sum | 1359B - New Theatre Square |